1360H - Binary Median - CodeForces Solution


binary search bitmasks brute force constructive algorithms *2100

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
typedef long long ll;
typedef unsigned long long ull;
typedef pair<ll, ll> PLL;
typedef pair<int, int> PII;
typedef pair<int, string> PIS;
typedef pair<double, double> PDD;
const double eps = 1e-9;
const int N = 3e5 + 10, M = 6e5 + 10, P = 998244353, INF = 0x3f3f3f3f;

int n, m;
set<ll> s;

void solve()
{
    s.clear();
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
    {
        string a;
        ll tmp = 0;
        cin >> a;
        for (int j = 0; j < m; j++)
        {
            tmp <<= 1;
            tmp += a[j] - '0';
        }
        s.insert(tmp);
    }
    ll res = ((1ll << m) - n - 1) / 2;
    for (auto i : s)
    {
        if (i <= res)
        {
            res++;
        }
    }
    for (int i = m - 1; i >= 0; i--)
    {
        cout << (int)((res >> i) & 1);
    }
    cout << endl;
}

int main()
{
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    int T = 1;
    cin >> T;
    while (T--)
    {
        solve();
    }
    return 0;
}


Comments

Submit
0 Comments
More Questions

1038B - Non-Coprime Partition
43A - Football
50A - Domino piling
479A - Expression
1480A - Yet Another String Game
1216C - White Sheet
1648A - Weird Sum
427A - Police Recruits
535A - Tavas and Nafas
581A - Vasya the Hipster
1537B - Bad Boy
1406B - Maximum Product
507B - Amr and Pins
379A - New Year Candles
1154A - Restoring Three Numbers
750A - New Year and Hurry
705A - Hulk
492B - Vanya and Lanterns
1374C - Move Brackets
1476A - K-divisible Sum
1333A - Little Artem
432D - Prefixes and Suffixes
486A - Calculating Function
1373B - 01 Game
1187A - Stickers and Toys
313B - Ilya and Queries
579A - Raising Bacteria
723A - The New Year Meeting Friends
302A - Eugeny and Array
1638B - Odd Swap Sort